1. Field of Use
The present invention relates to knowledge based systems and more particularly to systems for updating and maintaining the knowledge components of such systems.
1. Prior Art
As is well known, knowledge based tools are being used to speed up the development of expert systems. Such tools include expert system software stripped of its knowledge component or base which leaves only a shell or the linguistic and reasoning mechanisms that interpret and draw conclusions from knowledge.
The procedure for building an expert system with such tools involves employing the tool's development engine which includes editor and debugging tools to build a knowledge base of facts and rules for solving a specific type of problem. The knowledge base is then tested on sample problems using the tool's inference engine which includes the rule and program interpreter software components. The knowledge base is corrected using the editor and debugging tools. When testing is completed, the development engine is removed and copies of the tested knowledge base and the inference engine, collectively termed "production environment" are distributed to end users.
An important consideration in the use of such tools is the quality of the user and developer (expert) interfaces. If the tool is difficult to utilize, experts may not find it acceptable. Some tools require familiarity with the underlying languages to update and maintain the knowledge base.
To facilitate updating, some tools have provided facilities to examine an expert's line of reasoning. One system disclosed in U.S. Pat. No. 4,752,889, which issued on June 21, 1988, provides a display of rule and object networks. The system includes browsing capabilities which enable all of the relationships between an object and its sub-objects and their properties in addition to the logical links between rules to be examined. Other systems include tracing facilities to provide lists of rules that were invoked to reach the system's conclusion.
Also, to make the knowledge base easier to understand and access, knowledge of a particular domain is represented by frames. A frame system is a network of nodes and relations organized in a hierarchy in which the topmost nodes represent general concepts and the lower nodes represent more specific instances of those concepts. In such a system, the concept at each node is defined by a collection of attributes and values of those attributes. The attributes are called slots and each slot can have procedures or programs associated or attached to it which are executed when the information contained in the slots or values of the attribute is changed.
For certain applications, a frame type representation is used in an object-oriented organization consisting of objects rather than concepts that represent entities having distinct properties or behavior characteristics. Each object is situated in a network hierarchy that lets it inherit the properties of higher level objects just as in inheritance takes place in the frame based system of representation In this type of system, all objects communicate with one another by sending and receiving messages. When an object receives a message, it consults its data base and rules to decide what action to take. The rules may be stored directly with the object or in a higher level object somewhere in the network hierarchy. Usually, the action involves sending new messages to other objects in the system.
The advantage of the above type of organizational representation or structure is that it shortens the time required for the system to search for a specific rule or fact. That is, there is no need to search through the entire base knowledge for information about specific object or entity. Also, the structure saves space since common data can be shared.
While the above arrangement has made such systems easier to use, the expert user is still required to know in advance where to look or how to locate the specific knowledge which is to be modified. To the extent that the expert user does not know where the specific knowledge is located, the expert user is required to browse or search the knowledge base. This requires additional time and certain difficulty. Also, even with this capability, expert users still must be able to recognize when they have found the desired information when they see it.
To facilitate operation, one recent system was designed to incorporate a feature which enables a user to press two function keys and jump directly to the rule line to be edited from a screen encountered during normal system operation. While this arrangement facilitates correction, it is based on a one-to-one correspondence between the rule being executed and the location of the rule within the knowledge base. Thus, the feature is not useful in knowledge base systems which are organized in an hierarchical fashion and use inheritance. For further information regarding this system, reference may be made to the publication entitled, "CRYSTAL" by Intelligent Environments, copyright 1987.
Accordingly, it is a primary object of the present invention to provide a knowledge base tool which utilizes a frame based representation and is easy to operate and maintain.
It is a further object to provide a system which minimizes the amount of time required to make and verify changes made to a frame based knowledge base.